// 这是首页的网络请求
import axios, { AxiosDefaultTypes } from '@/utils/axios'
import type { AxiosResponse } from 'axios'
import type { AxiosMattersDataTypes, AxiosRecordDataTypes } from './types'

export * from './types'

// 获取组织主要公益事项
/**
 *
 * @param isAll  isAll: 查询所有 不写为查询展示的
 * @returns 公益事项列表
 */
export const getMattersInfo: (
  isAll?: string
) => Promise<
  AxiosResponse<AxiosDefaultTypes<AxiosMattersDataTypes>, any>
> = async (isAll = '') => {
  return await axios.get<AxiosDefaultTypes<AxiosMattersDataTypes>>(
    '/api/home/matters/find',
    {
      params: { isAll }
    }
  )
}

// 获取公益项目数据
/**
 *
 * @param isAll  isAll: 查询所有 不写为查询展示的
 * @returns 公益项目数据列表
 */
export const getRecordInfo: (
  isAll?: string
) => Promise<
  AxiosResponse<AxiosDefaultTypes<AxiosRecordDataTypes>, any>
> = async (isAll = '') => {
  return await axios.get<AxiosDefaultTypes<AxiosRecordDataTypes>>(
    '/api/home/record/find',
    {
      params: {
        isAll
      }
    }
  )
}

// 预约活动
/**
 *
 * @param name 预约者姓名
 * @param phone 预约者电话
 * @param email 预约者邮箱
 * @param startTime 开始预约时间
 * @param endTime 结束预约时间
 */
export const bookingActivities: (
  name: string,
  phone: string,
  email: string,
  startTime: number,
  endTime: number
) => Promise<AxiosResponse<AxiosDefaultTypes<null>, any>> = (
  name: string,
  phone: string,
  email: string,
  startTime: number,
  endTime: number
) => {
  return axios.post<AxiosDefaultTypes<null>>('/api/appointment/visitor', {
    name,
    phone,
    email,
    startTime,
    endTime
  })
}
